class Polizza < ActiveRecord::Base
  acts_as_paranoid unless SHOW_DELETED
  STATO = ["attiva", "sospesa", "terminata", "attesa svincolo"]
  belongs_to :riferimento, :polymorphic => true
  belongs_to :assicurazione, :class_name => 'Partner'#, :foreign_key => 'assicurazione_id'
  belongs_to :agenzia, :class_name => 'Partner'#, :foreign_key => 'agenzia_id' 
  belongs_to :tipo_polizza
  has_many :premi_assicurativi, :dependent => :protect, :class_name => 'PremioAssicurativo'
  has_many :note, :as => :nota_ref, :dependent => :protect
  has_many :allegati, :as => :allegato_ref, :dependent => :destroy
  validates_presence_of :numero, :assicurazione, :tipo_polizza, :riferimento_id
  validates_uniqueness_of :numero, :scope => [:numero, :deleted_at], :case_sensitive => false
  validates_inclusion_of :stato, :in => STATO, :allow_nil => true

  def name
    "#{tipo_polizza.name unless tipo_polizza.nil?}: #{numero} (#{riferimento_type.constantize.find(riferimento_id).to_label unless riferimento_id.nil?})"
  end
end
